
#ifndef _AGENDA_H_
#define _AGENDA_H_

#include "Date.h"
#include "Appointment.h"
#include "Hour.h"

//TODO: operator<<

class Agenda
{

public:
	Agenda();
	Agenda(Hour startHour, Date date, vector<Appointment *> agendedApointments, unsigned short numMaxClients = 20);
	virtual ~Agenda();

	Hour *getStartHour() const;
	void setStartHour(const Hour &startHour);
	Date *getDate() const;
	void setDate(const Date &date);
	vector<Appointment *> getAgendedAppointments() const;
	void setAggendedAppointments(const vector<Appointment *> &appointments);
	bool addAppointment(const Appointment &appointment);
	bool removeAppointment(const Appointment &appointment);
	bool removeAppointment(unsigned short position);

private:
	Hour *startHour;
	Date *date;
	vector<Appointment *> agendedApointments;
	static unsigned short numMaxClients = 20;

};
#endif // _AGENDA_H_
